﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Permissions;
using System.Collections;
using System.Linq;

using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;


namespace ENLibraryClass
{

    public class ENOfertas
    {
        private int id;
        private int vehiculo;
        private int cliente;
        private string chofer;
        private string descripcion;
        private DateTime fechainicio;
        private DateTime fechafin;
        private int descuento;
        private int dias;

        //CAD de acceso a la BD
        private CADLibraryClass.OfertasCAD cadOfertas;

        //CONSTRUCTOR DEFECTO
        public ENOfertas()
        {
            id = 0;
            vehiculo = 0;
            cliente = 0;
            chofer = "NO";
            descripcion = "";
            fechainicio = DateTime.Parse("01/01/1900");
            fechafin = DateTime.Parse("01/01/1900");
            descuento = 0;
            dias = 0;

            cadOfertas = new CADLibraryClass.OfertasCAD();
        }


        //CONSTRUCTOR PARAMETROS
        public ENOfertas(int id2, int vehiculo2, int cliente2, string chofer2, string descripcion2, DateTime fechainicio2, DateTime fechafin2, int descuento2, int dias2)
        {
            id = id2;
            vehiculo = vehiculo2;
            cliente = cliente2;
            chofer = chofer2;
            descripcion = descripcion2;
            fechainicio = fechainicio2;
            fechafin = fechafin2;
            descuento = descuento2;
            dias = dias2;

            cadOfertas = new CADLibraryClass.OfertasCAD();
        }

        //PROPIEDADES
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public int Vehiculo
        {
            get { return vehiculo; }
            set { vehiculo = value; }
        }

        public int Cliente
        {
            get { return cliente; }
            set { cliente = value; }
        }

        public string Chofer
        {
            get { return chofer; }
            set { chofer = value; }
        }

        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        public DateTime Fechainicio
        {
            get { return fechainicio; }
            set { fechainicio = value; }
        }

        public DateTime Fechafin
        {
            get { return fechafin; }
            set { fechafin = value; }
        }

        public int Descuento
        {
            get { return descuento; }
            set { descuento = value; }
        }

        public int Dias
        {
            get { return dias; }
            set { dias = value; }
        }

        //METODOS CRUD
        public bool AltaOferta()
        {
            try
            {
                bool nuevo = false;

                nuevo = cadOfertas.AltaOferta(id, vehiculo, cliente, chofer, descripcion, fechainicio, fechafin, descuento, dias);

                return nuevo;
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool ModificarOferta()
        {
            try
            {
                bool modificado = false;

                modificado = cadOfertas.ModificarOferta(id, vehiculo, cliente, chofer, descripcion, fechainicio, fechafin, descuento, dias);

                return modificado;
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }




        public DataTable BuscarOfertas()
        {
            try
            {
                return cadOfertas.BuscarOfertas();
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public DataTable BuscarOfertasPor()
        {
            try
            {
                return cadOfertas.BuscarOfertas(id, vehiculo, cliente, chofer, descripcion, fechainicio, fechafin, descuento, dias);
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public bool BorrarOferta()
        {
            try
            {
                return cadOfertas.BorrarOferta(id);
            }

            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }
}